package com.waikuai.shop.service;

import com.waikuai.shop.dto.StatisticsQueryDTO;
import com.waikuai.shop.vo.CategoryDistributionVO;
import com.waikuai.shop.vo.OrderTrendVO;
import com.waikuai.shop.vo.SalesRankingVO;
import com.waikuai.shop.vo.StatisticsOverviewVO;

import java.util.List;

/**
 * 统计服务接口
 * @author waikuai
 */
public interface StatisticsService {

    /**
     * 获取概览统计数据
     * @param timeRange 时间范围
     * @return 概览统计
     */
    StatisticsOverviewVO getOverviewStatistics(StatisticsQueryDTO.TimeRange timeRange);

    /**
     * 获取订单趋势数据
     * @param timeRange 时间范围
     * @return 订单趋势列表
     */
    List<OrderTrendVO> getOrderTrend(StatisticsQueryDTO.TimeRange timeRange);

    /**
     * 获取分类销售分布
     * @param timeRange 时间范围
     * @return 分类分布列表
     */
    List<CategoryDistributionVO> getCategoryDistribution(StatisticsQueryDTO.TimeRange timeRange);

    /**
     * 获取商品销售排行
     * @param timeRange 时间范围
     * @param limit 查询数量限制
     * @return 商品销售排行列表
     */
    List<SalesRankingVO> getTopProducts(StatisticsQueryDTO.TimeRange timeRange, Integer limit);
}

